import { get, post, put, del } from '../utils/request';

/**
 * 获取任务列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} [params.status] - 任务状态
 * @param {string} [params.taskType] - 任务类型
 * @param {string} [params.department] - 部门
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const getTaskList = (params) => {
  return get('/api/tasks', params);
};

/**
 * 获取任务详情
 * @param {number|string} id - 任务ID
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const getTaskDetail = (id) => {
  return get(`/api/tasks/${id}`);
};

/**
 * 创建任务
 * @param {Object} data - 任务数据
 * @param {string} data.title - 任务标题
 * @param {string} data.taskType - 任务类型
 * @param {string} data.department - 部门
 * @param {string} data.application - 应用
 * @param {string} data.repository - 代码仓库
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const createTask = (data) => {
  return post('/api/tasks', data);
};

/**
 * 更新任务
 * @param {number|string} id - 任务ID
 * @param {Object} data - 任务数据
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const updateTask = (id, data) => {
  return put(`/api/tasks/${id}`, data);
};

/**
 * 删除任务
 * @param {number|string} id - 任务ID
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const deleteTask = (id) => {
  return del(`/api/tasks/${id}`);
};

/**
 * 提交审批
 * @param {number|string} id - 任务ID
 * @param {Object} data - 审批数据
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const submitTaskApproval = (id, data) => {
  return post(`/api/tasks/${id}/approval`, data);
};

/**
 * 获取任务审批历史
 * @param {number|string} id - 任务ID
 * @returns {Promise<ApiResponse>} 响应数据
 */
export const getTaskApprovalHistory = (id) => {
  return get(`/api/tasks/${id}/approval-history`);
};